go/types.TypeParam.bound (field)

20 uses

	go/types (current package)
		decl.go#L705: 			tparams[index+i].bound = bound
		infer.go#L512: 		tparams2[i].bound = check.subst(pos, tparam.bound, renameMap, nil, check.context())
		instantiate.go#L221: 		bound := check.subst(pos, tpar.bound, smap, nil, ctxt)
		object.go#L590: 			typ = t.bound
		operand.go#L213: 				WriteType(&buf, tpar.bound, qf) // do not compute interface type sets here
		predicates.go#L136: 	if tpar, _ := Unalias(t).(*TypeParam); tpar != nil && tpar.bound != nil {
		predicates.go#L137: 		iface, _ := safeUnderlying(tpar.bound).(*Interface)
		predicates.go#L371: 				ybound := check.subst(nopos, ytparams[i].bound, smap, nil, ctxt)
		predicates.go#L372: 				if !c.identical(xtparam.bound, ybound, p) {
		signature.go#L251: 					recvTPar.bound = check.subst(recvTPar.obj.pos, baseTPar.bound, smap, nil, check.context())
		typeparam.go#L30: 	bound Type      // any type, but underlying is eventually *Interface for correct programs (see TypeParam.iface)
		typeparam.go#L51: 	typ := &TypeParam{check: check, id: id, obj: obj, index: -1, bound: constraint}
		typeparam.go#L76: 	return t.bound
		typeparam.go#L89: 	t.bound = bound
		typeparam.go#L115: 	bound := t.bound
		typeparam.go#L137: 		t.bound = ityp // update t.bound for next time (optimization)
		typestring.go#L419: 			if tpar.bound != prev {
		typestring.go#L426: 		prev = tpar.bound